package io.yyxx.boot.business.entity.billDataEntity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.time.LocalDateTime;

@TableName("car_bill") // 数据库中的表名
@Data
public class CarBillData {

    @TableId
    private Long id; // 数据id

    @TableField("create_time")
    private LocalDateTime createTime; // 新增时间
    // private LocalDateTime updateTime; // 修改时间

    @TableField("sync_state")
    private int syncState; // 同步状态

    @TableField("dept_date")
    @JsonProperty("dept_date")
    private String deptDate; // 出发日期

    @TableField("dept_time")
    @JsonProperty("dept_time")
    private String deptTime; // 出发时间

    @TableField("arr_date")
    @JsonProperty("arr_date")
    private String arrDate; // 到达日期

    @TableField("arr_time")
    @JsonProperty("arr_time")
    private String arrTime; // 到达时间

    @TableField("dept_city")
    @JsonProperty("dept_city")
    private String deptCity; // 出发城市

    @TableField("dept_location")
    @JsonProperty("dept_location")
    private String deptLocation; // 出发地

    @TableField("real_from_addr")
    @JsonProperty("real_from_addr")
    private String realFromAddr; // 实际上车点

    @TableField("arr_city")
    @JsonProperty("arr_city")
    private String arrCity; // 到达城市

    @TableField("arr_location")
    @JsonProperty("arr_location")
    private String arrLocation; // 到达地

    @TableField("real_to_addr")
    @JsonProperty("real_to_addr")
    private String realToAddr; // 实际下车点

    @TableField("estimate_drive_distance")
    @JsonProperty("estimate_drive_distance")
    private String estimateDriveDistance; // 预估公里数

    @TableField("real_drive_distance")
    @JsonProperty("real_drive_distance")
    private String realDriveDistance; // 实际行驶公里数

    @TableField("order_price")
    @JsonProperty("order_price")
    private Double orderPrice; // 订单金额

    @TableField("person_settle_fee")
    @JsonProperty("person_settle_fee")
    private Double personSettleFee; // 个人支付金额

    @TableField("service_fee")
    @JsonProperty("service_fee")
    private Double serviceFee; // 服务费

    @TableField("coupon")
    @JsonProperty("coupon")
    private Double coupon; // 优惠券

    @TableField("estimate_price")
    @JsonProperty("estimate_price")
    private Double estimatePrice; // 预估金额

    @TableField("coupon_price")
    @JsonProperty("coupon_price")
    private Double couponPrice; // 商旅优惠金额

    @TableField("business_category")
    @JsonProperty("business_category")
    private String businessCategory; // 用车原因

    @TableField("memo")
    @JsonProperty("memo")
    private String memo; // 用车事由

    @TableField("user_confirm_desc")
    @JsonProperty("user_confirm_desc")
    private String userConfirmDesc; // 员工是否认可

    @TableField("provider_name")
    @JsonProperty("provider_name")
    private String providerName; // 供应商车型

    @TableField("car_level")
    @JsonProperty("car_level")
    private String carLevel; // 车型

    @TableField("special_order")
    @JsonProperty("special_order")
    private String specialOrder; // 特别关注订单

    @TableField("special_reason")
    @JsonProperty("special_reason")
    private String specialReason; // 特别关注原因

    @TableField("primary_id")
    @JsonProperty("primary_id")
    private Long primaryId; // 主键 id

    @TableField("`index`")
    @JsonProperty("index")
    private String index; // 序号

    @TableField("status")
    @JsonProperty("status")
    private Integer status; // 入账状态

    @TableField("bill_record_time")
    @JsonProperty("bill_record_time")
    private String billRecordTime; // 入账时间

    @TableField("order_id")
    @JsonProperty("order_id")
    private String orderId; // 订单号

    @TableField("sub_order_id")
    @JsonProperty("sub_order_id")
    private String subOrderId; // 子订单 id

    @TableField("book_time")
    @JsonProperty("book_time")
    private String bookTime; // 预定时间

    @TableField("booker_name")
    @JsonProperty("booker_name")
    private String bookerName; // 预定人姓名

    @TableField("booker_id")
    @JsonProperty("booker_id")
    private String bookerId; // 预定人第三方用户 id

    @TableField("booker_job_no")
    @JsonProperty("booker_job_no")
    private String bookerJobNo; // 预订人工号

    @TableField("traveler_name")
    @JsonProperty("traveler_name")
    private String travelerName; // 出行人名称

    @TableField("traveler_id")
    @JsonProperty("traveler_id")
    private String travelerId; // 出行人第三方用户 id

    @TableField("traveler_job_no")
    @JsonProperty("traveler_job_no")
    private String travelerJobNo; // 出行人工号

    @TableField("cascade_department")
    @JsonProperty("cascade_department")
    private String cascadeDepartment; // 联级部门

    @TableField("department")
    @JsonProperty("department")
    private String department; // 末级部门

    @TableField("department_id")
    @JsonProperty("department_id")
    private String departmentId; // 部门 id

    @TableField("cost_center")
    @JsonProperty("cost_center")
    private String costCenter; // 成本中心名称

    @TableField("cost_center_number")
    @JsonProperty("cost_center_number")
    private String costCenterNumber; // 成本中心编号

    @TableField("project_name")
    @JsonProperty("project_name")
    private String projectName; // 项目名称

    @TableField("project_code")
    @JsonProperty("project_code")
    private String projectCode; // 项目编码

    @TableField("invoice_title")
    @JsonProperty("invoice_title")
    private String invoiceTitle; // 发票抬头

    @TableField("settlement_time")
    @JsonProperty("settlement_time")
    private String settlementTime; // 结算时间

    @TableField("fee_type")
    @JsonProperty("fee_type")
    private String feeType; // 费用类型

    @TableField("settlement_type")
    @JsonProperty("settlement_type")
    private String settlementType; // 结算方式

    @TableField("capital_direction")
    @JsonProperty("capital_direction")
    private String capitalDirection; // 资金方向

    @TableField("settlement_fee")
    @JsonProperty("settlement_fee")
    private Double settlementFee; // 结算金额

    @TableField("settlement_grant_fee")
    @JsonProperty("settlement_grant_fee")
    private Double settlementGrantFee; // 结算金额--预存赠送部分

    @TableField("alipay_trade_no")
    @JsonProperty("alipay_trade_no")
    private String alipayTradeNo; // 交易流水号

    @TableField("apply_id")
    @JsonProperty("apply_id")
    private String applyId; // 审批单号

    @TableField("over_apply_id")
    @JsonProperty("over_apply_id")
    private String overApplyId; // 超标审批单号

    @TableField("voucher_type")
    @JsonProperty("voucher_type")
    private Integer voucherType; // 票据类型

    @TableField("remark")
    @JsonProperty("remark")
    private String remark; // 备注

    @TableField("apply_extend_field")
    @JsonProperty("apply_extend_field")
    private String applyExtendField; // 审批扩展自定义字段

    @TableField("tax_rate")
    @JsonProperty("tax_rate")
    private String taxRate; // 税率

    @TableField("dep_city_code")
    @JsonProperty("dep_city_code")
    private String depCityCode; // 出发城市(6 字码)

    @TableField("arr_city_code")
    @JsonProperty("arr_city_code")
    private String arrCityCode; // 到达城市(6 字码)

    @TableField("third_itinerary_id")
    @JsonProperty("third_itinerary_id")
    private String thirdItineraryId; // 第三方行程 id

    @TableField("apply_dep_city_code")
    @JsonProperty("apply_dep_city_code")
    private String applyDepCityCode; // 申请出发城市 code

    @TableField("apply_dep_city_name")
    @JsonProperty("apply_dep_city_name")
    private String applyDepCityName; // 申请出发城市名称

    @TableField("apply_arr_city_code")
    @JsonProperty("apply_arr_city_code")
    private String applyArrCityCode; // 申请到达城市 code

    @TableField("apply_arr_city_name")
    @JsonProperty("apply_arr_city_name")
    private String applyArrCityName; // 申请到达城市名称

    @TableField("book_model")
    @JsonProperty("book_model")
    private String bookModel; // 用车性质

    @TableField("time_type")
    @JsonProperty("time_type")
    private String timeType; // 订单类型

    @TableField("supplement_apply_id")
    @JsonProperty("supplement_apply_id")
    private String supplementApplyId; // 行后审批单号

    @TableField("level_name")
    @JsonProperty("level_name")
    private String levelName; // 供应商车型

    @TableField("driver_add_fee")
    @JsonProperty("driver_add_fee")
    private Double driverAddFee; // 司机添加费总额

    @TableField("driver_add_detail")
    @JsonProperty("driver_add_detail")
    private String driverAddDetail; // 司机添加费用明细

    @TableField("traveler_member_type_name")
    @JsonProperty("traveler_member_type_name")
    private String travelerMemberTypeName; // 出行人类型

    @TableField("payment_department_id")
    @JsonProperty("payment_department_id")
    private String paymentDepartmentId; // 费用归属部门 id

    @TableField("payment_department_name")
    @JsonProperty("payment_department_name")
    private String paymentDepartmentName; // 费用归属部门名称

    @TableField("billing_entity")
    @JsonProperty("billing_entity")
    private String billingEntity; // 开票方

    @TableField("scene_id")
    @JsonProperty("scene_id")
    private String sceneId; // 场景 id

    @TableField("scene_name")
    @JsonProperty("scene_name")
    private String sceneName; // 场景名称

    @TableField("vehicle_scene_name")
    @JsonProperty("vehicle_scene_name")
    private String vehicleSceneName; // 用车场景

    @TableField("vehicle_scene_id")
    @JsonProperty("vehicle_scene_id")
    private String vehicleSceneId; // 用车场景 id

    @TableField("deductible_tax")
    @JsonProperty("deductible_tax")
    private Double deductibleTax; // 参考可抵扣税额

    @TableField("voucher_type_desc")
    @JsonProperty("voucher_type_desc")
    private String voucherTypeDesc; // 票据类型描述

    @TableField("category_desc")
    @JsonProperty("category_desc")
    private String categoryDesc; // 类目描述

    @TableField("fee_type_desc")
    @JsonProperty("fee_type_desc")
    private String feeTypeDesc; // 费用类型描述

    @TableField("settle_type_desc")
    @JsonProperty("settle_type_desc")
    private String settleTypeDesc; // 结算类型描述

    @TableField("trade_action_desc")
    @JsonProperty("trade_action_desc")
    private String tradeActionDesc; // 资金方向描述

    @TableField("status_desc")
    @JsonProperty("status_desc")
    private String statusDesc; // 入账状态描述
}